﻿#ifndef _OSS_PTHREAD_H_
#define _OSS_PTHREAD_H_
#include "ossType.h"

OSS_EXTERN_BEG

/**
 *		线程回调函数
 *@lpcontext		线程运行的上下文参数
 *@return			无定义 
 *@author			wjh 2015年11月26日
 *@modify			修改返回值  吴建凰 2016年4月19日
 */
typedef  DWord (*OssThreadFun)(void *lpcontext);

/**
 *		创建线程
 *@pfunc			线程回调函数
 *@argv			线程上下文参数
 *@return		成功返回线程句柄
 *				失败返回 NULL
 *@author		wjh 2015年11月26日
 *@modify		去除前面的参数，吴建凰 2016年4月19日
 */
Handle OssCreateThread( OssThreadFun pfunc, void *pContext);


/**
 *		释放线程句柄
 *@threadId		线程ID，oss_create_pthread返回值
 *@return		无
 *@notes		一般情况下所创建的线程句柄必须释放，虽然线程函数已经推出执行，但其句柄对应的空间还是在内存中。
 *				如果一直不释放，可能会导致后续无法创建线程。
 *@author		wjh 2015年11月26日
 */
void OssFreeThread(Handle threadId);

/**
 *		睡眠
 *@milliseconds		需要睡眠的时间，单位毫秒
 *@return			无
 *@author			wjh 2015年11月26日
 */
void OssSleep(int milliseconds);

/**
 *      获取当所在的线程ID
 */
DWord OssGetCurrentThreadId();
OSS_EXTERN_END
#endif

